This application is related to the following applications: (1) U.S. patent application Ser. No. 09/662,368 filed Sep. 13, 2000, and entitled xe2x80x9cFile Consistency Protocols and Methods for Carrying out the Protocolsxe2x80x9d; (2) U.S. patent application Ser. No. 09/648,807 filed Oct. 6, 2000, and entitled xe2x80x9cN-Way Data Mirroring System and Methods for Using The Samexe2x80x9d. Each of these related applications is incorporated herein by reference.
1. Field of the Invention
This invention relates generally to computer storage, and more particularly to computer storage systems and methods that are independent of consumer file systems, server file systems, specific bus and network protocols, drivers, I/O bus and/or other transport components or architectures which are typically found in a computing environment.
2. Description of the Related Art
Today, more and more reliance is being placed on computers to create, edit, modify, and store important documents. With this reliance, comes the need for increased versatility in the ability to store and retrieve data. There are several techniques available today for facilitating computer storage, and as will be seen, more versatility in computer information storage is needed.
FIG. 1A is a block diagram showing a conventional local storage system 100.
The local storage system 100 includes a user computer 102 and a storage device 112 coupled to the user computer 102 via a peripheral interconnect 114. The user computer 102 has executed thereon an application 104, an operating system (O/S) having a local file system 106, a driver 108 for an input/output (I/O) device 110 that controls the storage device(s) 112.
To store and retrieve data for the storage device 112, the application 104 typically transmits a request to the local file system 106, which in turn passes the file system request to the device driver 108. The device driver 108 converts the file system request into a block-level I/O request that is then passed from I/O device 110 over the peripheral interconnect 114 to the storage device 112.
The I/O request then completes and the completion result is passed back up through the I/O device 110, driver 108, and local file system 106. The data is either placed into system memory, for a disk READ operation, or placed on the storage device 112 for a disk WRITE command.
To provide increased flexibility the network file system (NFS) has been used to store data remotely from a user computer. FIG. 1B is a block diagram showing a prior art network file system 150. The network file system 150 includes a user computer 102 and a storage computer 130 coupled to the user computer 102 via a network 116. Using the conventional NFS 150 a user can store data on a remote server 130 that is executing the same or a compatible O/S as the user computer 102.
To accomplish remote NFS storage, the user computer 102 includes an application 104, a network file system 120, protocols 122, a network driver 124, and a network interface card (NIC) 126 coupled to the network 116 via transport 128. The storage computer 130 includes a corresponding NIC 126, network driver 124, protocols 122, and file system 120. In addition, the server 130 includes a device driver 108, and an I/O device 110 coupled to a storage device 112 via a peripheral interconnect 114.
In the conventional NFS 150, the network file system 120 replaces the local file system 106 of FIG. 1A, and is typically layered on TCP/IP or UDP/IP protocols 112. To store and retrieve data using NFS 150, the application 104 typically transmits a file system request to the network file system 120, through the protocol stacks 122 to the network driver 124. The network driver 124 then transmits the request from the NIC 126 of the user computer 102 to the NIC 126 of the storage computer 130 via the network 116 and transport connections 128.
When received by the NIC 126 on the storage computer 130, the request is passed through the network driver 124 and protocol stacks to the file system 120, which in turn passes the file system request to the device driver 108 of the storage computer 130. The device driver 108 then converts the file system request into a block-level I/O request that is passed from I/O device 110 to the storage device 112 via the peripheral interconnect 114.
When the I/O request completes, the result is passed back up through the I/O software layers of both the storage computer 130 and the user computer 102 using the network 116. The data is then either placed into the memory of the user computer for a READ operation, or placed on the storage device 112 for a WRITE command.
A problem with the conventional network file system 150 is that generally both the user computer 102 and the storage computer 130 need to execute the same O/S and file system 120. Thus, if the user computer 102 is executing on WINDOWS NT, the storage computer 130 also needs to execute WINDOWS NT for the network file storage system 150 to operate properly.
Thus, if the storage computer 130 is used with a plurality of user computers 102, all the user computers 102 generally must execute the same O/S and file system 120 as is executed on the storage computer 130. However, it is not always desirable to use a particular O/S for a particular application. Hence, different users often operate under different O/S""s, and therefore may not be able to share the storage system 150 of a remote computer in this way.
In view of the forgoing, there is a need for a storage system that is capable of operation independent of the operating systems"" limitations and which allows the storage not to be hosted by another computer system. The storage system should be capable of storing data remotely and capable of operating independently of any particular consumer computers"" O/S. Further, the storage system should be capable of operating with reduced user configuration or networking knowledge, such that the user generally does not need to learn how to use a configure complex networked file and storage systems.
Broadly speaking, the present invention fills the needs described above by providing a storage system capable of providing data storage independent of a consumer computer architecture, independent of the transport, and independent of various network operating system environments. In one embodiment, a computer storage method for providing file storage access independent of protocol, driver and transport architectures is disclosed. Initially, a file system request is received by a software transport abstraction, where the file system request is configured in a first format based on a first operating system. The file system request is communicated to a file system translator via a communication channel, and the file system configures the file system request into a second format based on a second operating system utilizing the file system translator. The file request is then executed.
Another computer storage method that provides data storage independent of an underlying transport architecture is disclosed in another embodiment of the present invention. Initially, a file system request is received from a requesting computer, where the file system request is configured in a first format based on a first operating system. The file system request is then configured into a second format based on a second operating system utilizing a file system translator. The file system request is then executed, read or write performed, and a result is obtained. The completion result is then communicated back to the requesting computer via a communication channel. (Completion result may be success, failure or success with exception.)
In a further embodiment, an independent computer storage system is disclosed. The independent computer storage system includes an independent storage driver that is capable of accepting file system requests configured in a first format based on a first operating system. Further included is a file system translator that is in communication with the independent storage driver via a communication channel. The file system translator is capable of configuring the file system request into a second format based on a second operating system. A second file system capable of performing the file system request when the file system request is configured in the second format is also included in the system.
In yet a further embodiment, another independent computer storage system is disclosed. The system includes a computer processor and an operating system capable of being executed on the computer processor, where the operating system includes a file system. The system also includes a file system translator capable of configuring a file system request into a format usable by the file system. In addition, a communication channel is included that is in communication with the file system translator. The communication channel provides a transport independent communication link between the file system translator and an independent storage driver resident on a requesting (consumer) computer.
Advantageously, embodiments of the present invention can provide platform-independent storage for consumer computers, regardless of underlying hardware, software, including the operating system, protocols or physical transport. Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.